import api from '../utils/axios'
import qs from 'qs'

const LOGIN_INFO_KEY = 'login_user_info';
const USER_INFO_KEY = 'current_user_info';
const REGIONS_INFO = 'regions_info';
const LOGIN_ACCOUNT = 'login_account';
let loginTimer;

export default {
    /*加密*/
    compile(code) {
        var c = String.fromCharCode(code.charCodeAt(0) + code.length);
        for (var i = 1; i < code.length; i++) {
            c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));
        }
        return escape(c);
    },
    /*解密*/
    uncompile(code) {
        code = unescape(code);
        var c = String.fromCharCode(code.charCodeAt(0) - code.length);
        for (var i = 1; i < code.length; i++) {
            c += String.fromCharCode(code.charCodeAt(i) - c.charCodeAt(i - 1));
        }
        return c;
    },

    /*用户登录*/
    register(option) {
        // api.setToken(null);
        return api.post('/api/v1/users', option).then((res) => {
            console.log(res);
            return Promise.resolve(res.data)
        }).catch(err => {
            // api.setToken(null);
            return Promise.reject(res.data)
        })
    },

    /*用户登录*/
    login(option) {
        // api.setToken(null);
        return api.post('/api/v1/login', option).then((res) => {
            return Promise.resolve(res)
        }).catch(err => {
            // api.setToken(null);
            return Promise.reject(err)
        })
    },

    getUserDetail(id) {
        return api.get(`/api/v1/users/${id}`).then((res) => {
            console.log(res.data);
            return Promise.resolve(res.data)
        }).catch(err => {
            // api.setToken(null);
            return Promise.reject(err)
        })
    },

    getUserInfo(option){
        // api.setToken(null);
        return api.get(`/api/v1/users`, option).then((res) => {
            return Promise.resolve(res.data)
        }).catch(err => {
            // api.setToken(null);
            return Promise.reject(err)
        })
    },

    /*获取用户登录信息*/
    getLoginUserInfo() {
        let info = sessionStorage.getItem(LOGIN_INFO_KEY);
        return info ? qs.parse(info) : null
    },

    /*退出登录*/
    logout() {
        localStorage.removeItem(LOGIN_INFO_KEY);
    },

    /*获取用户列表*/
    getUsersList(option) {
        return api.get(`api/v1/users?${qs.stringify(option)}`).then((res) => {
            return Promise.resolve(res.data);
        })
    },
    // /*获取用户信息*/
    // getUserInfo(id) {
    //     return api.get(`api/v1/user/${id}`).then((res) => {
    //         return Promise.resolve(res.data);
    //     })
    // },
    /*新增用户*/
    postAddUser(option) {
        return api.post(`api/v1/user`, option).then((res) => {
            return Promise.resolve(res);
        })
    },
    /*新增用户*/
    puttEditUser(id, option) {
        return api.put(`api/v1/user/${id}`, option).then((res) => {
            return Promise.resolve(res);
        })
    },

    /*删除用户*/
    deleteUser(id) {
        return api.delete(`api/v1/user/${id}`).then((res) => {
            return Promise.resolve(res);

        })
    },

    /*获取用户权限列表*/
    getUserRolesList(option) {
        return api.get(`api/v1/userRoles?${qs.stringify(option)}`).then((res) => {
            return Promise.resolve(res.data);
        })
    },

    /*删除用户权限*/
    deleteUserRole(id) {
        return api.delete(`api/v1/userRole/${id}`).then((res) => {
            return Promise.resolve(res);

        })
    },

    /*获取用户权限列表*/
    getRolesList(option) {
        return api.get(`api/v1/roles?${qs.stringify(option)}`).then((res) => {
            return Promise.resolve(res.data);
        })
    },

    /*添加用户角色权限*/
    postUserRole(option) {
        return api.post(`api/v1/userRole`, option).then((res) => {
            return Promise.resolve(res);
        })
    },
    /*编辑用户角色权限*/
    putUserRole(id, option) {
        return api.put(`api/v1/userRole/${id}`, option).then((res) => {
            return Promise.resolve(res);

        })
    },
    /*获取用户角色信息*/
    getUserRole(id) {
        return api.get(`api/v1/userRole/${id}`).then((res) => {
            return Promise.resolve(res.data);

        })
    },

    /*支付明细查询*/
    getPayments(option) {
        return api.get(`api/v1/payments?${qs.stringify(option)}`).then((res) => {
            return Promise.resolve(res.data);
        })
    },

    /*付款总数查询*/
    getPaymentsSum(option) {
        return api.get(`api/v1/payments/sum?${qs.stringify(option)}`).then((res) => {
            return Promise.resolve(res.data);
        })
    },

    /*批量添加用户*/
    postBatchAddUser(option) {
        return api.post(`api/v1/batch-add-users`, option, true).then(res => {
            return Promise.resolve(res.data);
        })
    },

    /*用户统计*/
    getUserStatistics(option, type) {
        if (type === 'date') {
            return api.get(`api/v1/user-statistics?${qs.stringify(option)}`).then((res) => {
                return Promise.resolve(res.data);
            })
        } else {
            return api.get(`api/v1/user-region-statistics?${qs.stringify(option)}`).then((res) => {
                return Promise.resolve(res.data);
            })
        }

    },

    /*支付统计*/
    getPaymentStatistics(option) {
        return api.get(`api/v1/payment-statistics?${qs.stringify(option)}`).then((res) => {
            return Promise.resolve(res.data);
        })
    },

}

